#ifndef IDRAWER_H
#define IDRAWER_H

#include "../Config/Export.h"
#include "GL/glew.h"

namespace epix {

class SHARED IDrawer
{
    public:

        virtual ~IDrawer() {}

        virtual void initialize(GLenum mode) = 0;

        virtual void addBuffer(GLenum type, const void *data, GLsizeiptr size, int count) = 0;

		virtual void update(GLenum type, const void *data, GLsizeiptr size) = 0;
		
		virtual void clear() = 0;

		virtual void bind() = 0;
		virtual void unBind() = 0;
		
        virtual void draw(unsigned int count) = 0;
        virtual void drawRange(unsigned int count, unsigned int first = 0) = 0;

};

}

#endif
